﻿#define _CRT_SECURE_NO_WARNINGS 1



////判断字节序
//#include<stdio.h>
//int main()
//{
//	int a = 1;
//	//0x 00 00 00 01
//	//大端：0x 00 00 00 01  小端：0x 01 00 00 00
//	//判断前一个字节即可
//	if (*(char*)&a == 1)
//	{
//		printf("小端");
//	}
//	else
//	{
//		printf("大端");
//	}
//	return 0;
//}



//#include<stdio.h>
//int check_sys()
//{
//	int a = 1;
//	if (*(char*)&a == 1)
//		return 1;
//	else
//		return 0;//更加灵活，复用可能性高
//}
//int main()
//{
//	int r = check_sys();
//	if (r == 1)
//		printf("小端");
//	else
//		printf("大端");
//	return 0;
//}a



//#include<stdio.h>
//int main()
//{
//	
//	//char是有符号还是无符号由编译器决定
//	//在VS中 char == signed char
//	//整型提升(针对char,short):有符号位补充符号位，无则补充0
//	char a = -1;
//	//10000000 00000000 00000000 00000001
//	//11111111 11111111 11111111 11111110
//	//11111111 11111111 11111111 11111111
//	//截断：11111111
//	signed char b = -1;
//	//11111111
//	unsigned char c = -1;
//	//11111111
//	printf("a=%u,b=%u,c=%u", a, b, c);
//	//%d打印10进制的无符号整数---认为原反补相同
//	// 整型提升：
//	//11111111 11111111 11111111 11111111--->  a
//	//11111111 11111111 11111111 11111111--->  b
//	//00000000 00000000 00000000 11111111--->256 c
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//	char a = -128;
//	//10000000 00000000 00000000 10000000
//	//11111111 11111111 11111111 01111111
//	//11111111 11111111 11111111 10000000
//	printf("%u\n", a);
//	//打印无符号整型
//	//11111111 11111111 11111111 10000000
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//	//char变量类型范围为：-128~127
//	char a = 128;
//	//00000000 00000000 00000000 10000000
//	//00000000 00000000 00000000 10000000
//	//00000000 00000000 00000000 10000000
//	//10000000 --- a
//	printf("%u\n", a);
//	//打印无符号整型
//	//整型提升：(char是有符号，补充符号位)
//	//11111111 11111111 11111111 10000000
//	return 0;
//}



//#include <stdio.h>
//#include<string.h>
//int main()
//{
//char a[1000];
//int i;
//for (i = 0; i < 1000; i++)
//{
//a[i] = -1 - i;
//}
//printf("%d",strlen(a));
//return 0;
//}



//#include <stdio.h>
//unsigned char i = 0;  //unsigned char范围是0~255
//int main()
//{//              恒为真
//	for (i = 0; i <= 255; i++)
//	{
//		printf("hello world\n");//死循环打印
//	}
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	unsigned int i;
//	//-1 
//	//10000000000000000000000000000000001
//	//11111111111111111111111111111111110
//	//11111111111111111111111111111111111
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%u\n", i);
//	}
//	return 0;
//}



//#include <stdio.h>
////X86环境 ⼩端字节序
//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);
//	return 0;
//} 难